body {
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
}
header {
    height: 50px;
}
main {
    flex: 1;
}
footer {
    display: flex;
    height: 50px;
    border-top: solid 1px #bbb;
    dl {
        display: flex;
        flex-direction: column-reverse;
        flex: 1;
        background-color: #eee;
        border-right: solid 1px #bbb;
        &:last-child {
            border-right: none;
        }
        dt {
            height: 50px;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-shrink: 0;
            color: #777;
            font-size: 18px;
            &:nth-child(n + 2) {
                border-top: solid 1px #bbb;
                border-right: solid 1px #bbb;
            }
        }
    }
}
